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. Egit Patch

    Git为我们提供了Patch功能,Patch中包含了源码更改的描述,能够应用于其他Eclipse工作空间或者Git仓库.也就是说,可以将当前提交导出至其他分支或者项目中.   举个例子,项目A.B中使 ...

  2. Hammer.js--转载自李林峰的园子

    一.前言 移动端框架当前还处在初级阶段,但相对于移动端的应用来说已经有很长时间了.虽然暂时还没有PC端开发的需求量大,但移动端的Web必然是一种趋势,在接触移动端脚本的过程中,最开始想到的是juqer ...

  3. python 模拟用户登录代码

    需求:输入用户名,判断用户是否被锁定,锁定则退出,否则进入密码验证,输入三次错误密码之后此用户被锁定. userlist.txt里,用":"将用户名.密码.状态码分开: [root ...

  4. HDU2647

    第一道逆拓扑纪念一下... #include<iostream> #include<cstdio> #include<cstring> #include<cm ...

  5. [leetcode]Path Sum II

    Path Sum II Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals ...

  6. phar文件的使用

    1.用php命令行 php phar文件 2.生成bat文件,在命令行下使用,以composer.phar为例 ( 1)在php.exe所在目录新建composer.bat文件 (2)把compose ...

  7. python logging模块

    1.logging模块提供了四个组件logger:日志类,有两个功能1)配置日志的等级,处理器handler,过滤器filterlogger.setLevel(logging.INFO)logger. ...

  8. RestEasy 3.x 系列之四:使用Hibernate_Validator进行数据校验

    使用Hibernate_Validator进行数据校验,好处不言而喻:规范统一,低耦合度. 1.pom.xml <dependency> <groupId>org.hibern ...

  9. 将 expression 转换为数据类型 int 时发生算术溢出

    将 expression 转换为数据类型 int 时发生算术溢出错误 2种快速处理方法 1.CONVERT(bigint, 字段名): 2.Cast(字段名 as decimal(18,2)): 这个 ...

  10. selenium浏览器操作

    在元素定位中xpath使用的还算比较多,介绍一下常见的firfox和chrome浏览器插件安装 一.浏览器定位工具安装 1.firfox firfox比较简单,主要浏览器自带的定位功能也比较强大国内也 ...