1:计算double值四舍五入的方法
对小数数值进行四舍五入,首先应该确认保留小数位, 如果数值的小数精度大于保留小数位,那么开始四舍五入计算.四舍五入的方法非常简单,在所有要丢失精度的小数位中加5,如果大于10则向前进位,最后计算出四舍五入的结果.
/// <summary>计算double值四舍五入的方法
///
/// </summary>
/// <param name="dbl">进行四舍五入的数值</param>
/// <param name="i">保留的小数位</param>
/// <returns>返回四舍五入后的double值</returns>
internal double Round(double dbl, int i)
{
string P_str_dbl = dbl.ToString();//将double数值转换为字符串
string P_str_lower = //将double数值小数位转换为字符串
P_str_dbl.Split('.')[];
int P_str_length = P_str_lower.Length;//计算double数值小数位长度
dbl += GetValue(i, P_str_length);//开始进行四舍五入运算
P_str_dbl = dbl.ToString();//将运算后的值转换为字符串
if (P_str_dbl.Contains("."))//判断是否存在小数位
{
string P_str_upper = //得到整数位字符串
P_str_dbl.Split('.')[];
P_str_lower = P_str_dbl.Split('.')[];//得到小数位字符串
if (P_str_lower.Length > i)//判断数值位数是否大于保留小数位数
{
P_str_lower = P_str_lower.Substring(//截取保留的小数位
, i);
return double.Parse(//返回double数值
P_str_upper + "." + P_str_lower);
}
else
{
return double.Parse(P_str_dbl);//如数值位数小于保留小数位数则直接返回
}
}
else
{
return double.Parse(P_str_dbl);//如果没有小数位则直接返回值
}
} /// <summary>得到小数数值的方法
///
/// </summary>
/// <param name="int_null">四舍五入保留的位数</param>
/// <param name="length">四舍五入丢失的位数</param>
/// <returns>返回小数值用于四舍五入计算</returns>
internal double GetValue(int int_null, int length)
{
string P_str_dbl = "0.";//定义字符串变量并赋值
for (int i = ; i < length; i++)//使用for循环添加小数位
{
if (i > int_null - )
{
P_str_dbl += "";//向小数的四舍五入部分加5
}
else
{
P_str_dbl += "";//向小数的保留部分加0
}
}
return double.Parse(P_str_dbl);//返回小数数值
}

2:数字金额的小写转大写

小写金额需先做判断是否是int类型
/// <summary>数字金额的小写转大写
///
/// </summary>
/// <param name="x">小写金额</param>
/// <returns>大写金额</returns>
public string NumToChinese(string x)
{
//数字转换为中文后的数组
string[] P_array_num = new string[] { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
//为数字位数建立一个位数组
string[] P_array_digit = new string[] { "", "拾", "佰", "仟" };
//为数字单位建立一个单位数组
string[] P_array_units = new string[] { "", "万", "亿", "万亿" };
string P_str_returnValue = ""; //返回值
int finger = ; //字符位置指针
int P_int_m = x.Length % ; //取模
int P_int_k = ;
if (P_int_m > )
P_int_k = x.Length / + ;
else
P_int_k = x.Length / ;
//外层循环,四位一组,每组最后加上单位: ",万亿,",",亿,",",万,"
for (int i = P_int_k; i > ; i--)
{
int P_int_L = ;
if (i == P_int_k && P_int_m != )
P_int_L = P_int_m;
//得到一组四位数
string four = x.Substring(finger, P_int_L);
int P_int_l = four.Length;
//内层循环在该组中的每一位数上循环
for (int j = ; j < P_int_l; j++)
{
//处理组中的每一位数加上所在的位
int n = Convert.ToInt32(four.Substring(j, ));
if (n == )
{
if (j < P_int_l - && Convert.ToInt32(four.Substring(j + , )) > && !P_str_returnValue.EndsWith(P_array_num[n]))
P_str_returnValue += P_array_num[n];
}
else
{
if (!(n == && (P_str_returnValue.EndsWith(P_array_num[]) | P_str_returnValue.Length == ) && j == P_int_l - ))
P_str_returnValue += P_array_num[n];
P_str_returnValue += P_array_digit[P_int_l - j - ];
}
}
finger += P_int_L;
//每组最后加上一个单位:",万,",",亿," 等
if (i < P_int_k) //如果不是最高位的一组
{
if (Convert.ToInt32(four) != )
//如果所有4位不全是0则加上单位",万,",",亿,"等
P_str_returnValue += P_array_units[i - ];
}
else
{
//处理最高位的一组,最后必须加上单位
P_str_returnValue += P_array_units[i - ];
}
}
return P_str_returnValue;
}

3:设置货币的小数位数

double P_dbl_value;//定义double类型变量
if (double.TryParse(txt_input.Text, out P_dbl_value))//判断输入是否正确
{
NumberFormatInfo GN = //实例化NumberFormatInfo对象
new CultureInfo("zh-CN", false).NumberFormat;
GN.CurrencyDecimalDigits = Convert.ToInt32(cbox_select.Text);//设置保留位数
txt_output.Text = P_dbl_value.ToString("C", GN);//将输入的小数转换为货币形式
}
else
{
MessageBox.Show("请输入正确的数值!", "提示!");//用户提示信息
}

:进制转换

class Transform
{
internal string TenToBinary(long value)//将十进制转换为二进制
{
return Convert.ToString(value, );
}
internal string TenToEight(long value)//将十进制转换为八进制
{
return Convert.ToString(value, );
}
internal string TenToSixteen(long value)//将十进制转换为十六进制
{
return Convert.ToString(value, );
}
internal string BinaryToEight(long value)//将二进制转换为八进制
{
return Convert.ToString(
Convert.ToInt64(value.ToString(), ), );
}
internal string BinaryToTen(long value)//将二进制转换为十进制
{
return Convert.ToInt64(
value.ToString(), ).ToString();
}
internal string BinaryToSixteen(long value)//将二进制转换为十六进制
{
return Convert.ToString(
Convert.ToInt64(value.ToString(), ), );
}
internal string EightToBinary(long value)//将八进制转换为二进制
{
return Convert.ToString(
Convert.ToInt64(value.ToString(), ), );
}
internal string EightToTen(long value)//将八进制转换为十进制
{
return Convert.ToInt64(
value.ToString(), ).ToString();
}
internal string EightToSixteen(long value)//将八进制转换为十六进制
{
return Convert.ToString(
Convert.ToInt64(value.ToString(), ), );
}
internal string SixteenToBinary(string value)//将十六进制转换为二进制
{
return Convert.ToString(
Convert.ToInt64(value, ), );
}
internal string SixteenToEight(string value)//将十六进制转换为八进制
{
return Convert.ToString(
Convert.ToInt64(value, ), );
}
internal string SixteenToTen(string value)//将十六进制转换为十进制
{
return Convert.ToUInt64(value, ).ToString();
}
}

double四舍五入,商品金额大小写转换,设置货币的小数位数跟格式输出,进制转化的更多相关文章

  1. delphi 金额大小写转换函数

    {*------------------------------------------------ 金额大小写转换函数 @author 王云盼 @version V1506.01 在delphi7测 ...

  2. C++进制转换(十进制转二进制、八进制、随意进制)

    十进制转二进制: //十进制转二进制 #include<iostream> using namespace std; void printbinary(const unsigned int ...

  3. .NET下金额大小写转换

    说明:金额转换可以转换50位的数值,单位从分到级.对于中间部分是否显示零,可以根据修改TranslateJInen()函数修改.中间数值为零的去掉不显示 public string GetChCapi ...

  4. 金额大小写转换和input失去焦点触发事件

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. java 金额的大小写转换类

    /** *金额大小写转换工具类 */ public class MoneyUtil { /** 大写数字 */ private static final String[] NUMBERS = { &q ...

  6. oracle 处理时间和金额大小写的相关函数集合

    CREATE OR REPLACE FUNCTION MONEY_TO_CHINESE(MONEY IN VARCHAR2) RETURN VARCHAR2 IS C_MONEY ); M_STRIN ...

  7. 进制转换( C++字符数组 )

    注: 较为简便的方法是用 整型(int)或浮点型(long.double 注意:该类型不一定能够准确存储数据) 来存放待转换的数值,可直接取余得到每一位数值 较为稳定的方法是用 字符数组储存待转换的数 ...

  8. JS-011-颜色进制转换(RGB转16进制;16进制转RGB)

    在网页开发的时候,经常需要进行颜色设置,因而经常需要遇到进行颜色进制转换的问题,例如:RGB转16进制:16进制转RGB),前几天在测试的时候,发现网站的颜色进制转换某类16进制颜色(例如:#0000 ...

  9. JAVA基础学习之String、StringBuffer、StringBuilder、基本数据类型的使用、整形进制转换、集合Collection、Vector、ArrayList、LinkedList、HashSet、TreeSet等(3)

    主函数类MainDemo.java package com.itcast.test20140109; import java.util.ArrayList; import java.util.Coll ...

随机推荐

  1. tornado中self.write() 写list

    tornado源码中不支持在self.write()中直接传入list对象,源代码如下 def write(self, chunk): if self._finished: raise Runtime ...

  2. javascript方法链式调用和构造函数链式调用对比

    先说一下方法链:B的实例从A继承了A中的同名方法,如果B的方法重载了A中的方法,B中的重载方法可能会调用A中的重载方法,这种方法称为方法链. 构造函数链:子类的构造函数B()有时需要调用父类的构造函数 ...

  3. JQuery 控制元素显示隐藏

    JS在浏览器里面做调试的时候,先在浏览器里面找到页面代码加上断点来执行.然后根据执行情况来查找部分变量是否能找到,一点一点的排查内容.可以做筛选条件 部分隐藏.默认让部分条件加上.hide 默认隐藏, ...

  4. HTML5,jQuery,ajax基础面试

    简要描述HTML5中的本地存储 答案: 很多时候我们会存储用户本地信息到电脑上,例如:比方说用户有一个填充了一半的长表格,然后突然网络连接断开了,这样用户希望你能存储这些信息到本地,当网络回复的时候, ...

  5. Oracle--用变量保存查询出来的值

    1:在我们一般编写存储过程中比较常见的是,习惯将查询出来的一个值赋值给一个变量,这个如何实现呢,用into,代码如下   Select ID into 变量1 from 表 where 条件 2:但当 ...

  6. Express4.x常用API(二):Request

    这是第二篇了,打算每天都拿些时间去详细的看看文档来自学下express吧,接下来就开始了,这次依然是有选择性的找API根据自己的理解翻译过来,方便日后开发时候的自己查阅,由于水平有限,大概也会在使用过 ...

  7. 今天网站后台登录页面需要生成一个二维码,然后在手机app上扫描这个二维码,实现网站登录的效果及其解决方案如下

    要实现二维码登录,需要解决2个技术,1.需要js websocket 与后台php实现长连接技术 2.实现二维码生成技术 要实现这个功能第二个算是比较简单,只需要下载一个php的二维码生成器即可,但要 ...

  8. Win8.1离线安装.NET3.5

    Win8.1离线安装.NET3.5 dism.exe /online /enable-feature /featurename:NetFX3 /Source:H:\sources\sxs 其中H为盘符 ...

  9. yum常用命令

    Yum list kmod-coretemp[查找kmod-coretemp模块状态] Yum clean all[清空yum缓存] Yum remove kmod-coretemp [卸载kmod- ...

  10. 基本的HTML标签

    html的基本标签: <html><body> <h1>My First Heading</h1><h2>this second headi ...