double四舍五入,商品金额大小写转换,设置货币的小数位数跟格式输出,进制转化
/// <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:数字金额的小写转大写
/// <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四舍五入,商品金额大小写转换,设置货币的小数位数跟格式输出,进制转化的更多相关文章
- delphi 金额大小写转换函数
{*------------------------------------------------ 金额大小写转换函数 @author 王云盼 @version V1506.01 在delphi7测 ...
- C++进制转换(十进制转二进制、八进制、随意进制)
十进制转二进制: //十进制转二进制 #include<iostream> using namespace std; void printbinary(const unsigned int ...
- .NET下金额大小写转换
说明:金额转换可以转换50位的数值,单位从分到级.对于中间部分是否显示零,可以根据修改TranslateJInen()函数修改.中间数值为零的去掉不显示 public string GetChCapi ...
- 金额大小写转换和input失去焦点触发事件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- java 金额的大小写转换类
/** *金额大小写转换工具类 */ public class MoneyUtil { /** 大写数字 */ private static final String[] NUMBERS = { &q ...
- oracle 处理时间和金额大小写的相关函数集合
CREATE OR REPLACE FUNCTION MONEY_TO_CHINESE(MONEY IN VARCHAR2) RETURN VARCHAR2 IS C_MONEY ); M_STRIN ...
- 进制转换( C++字符数组 )
注: 较为简便的方法是用 整型(int)或浮点型(long.double 注意:该类型不一定能够准确存储数据) 来存放待转换的数值,可直接取余得到每一位数值 较为稳定的方法是用 字符数组储存待转换的数 ...
- JS-011-颜色进制转换(RGB转16进制;16进制转RGB)
在网页开发的时候,经常需要进行颜色设置,因而经常需要遇到进行颜色进制转换的问题,例如:RGB转16进制:16进制转RGB),前几天在测试的时候,发现网站的颜色进制转换某类16进制颜色(例如:#0000 ...
- 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 ...
随机推荐
- win10 mysql 5.7.13 服务无法启动 3534
自己也百度了很多方法都不管用(我用的MySQL是免安装版,直接解压缩的那种) 基本上都是说没有设置data目录,没有 初始化,我很郁闷的是都按照那些步骤处理了,到最后还是不行. 后来把配置文件里面的 ...
- jquery的ajax和jsonp的写法
交互 ajax jsonp ajax跟之前一模一样 $(document).ready(function(){ $.ajax({ url:'get.php', ...
- iphone 浏览器自动解析数字为号码解决方法
iphone 浏览器自动解析数字为号码解决方法 www.MyException.Cn 网友分享于:2015-10-09 浏览:0次 iphone 浏览器自动解析数字为号码解决办法 在工作中遇到 ...
- ready和onload的区别
$(document).ready()和window.onload在表面上看都是页面加载时我们就去执行一个函数或动作,但是在具体的细节上$(document) ready()和window onloa ...
- the difference between const int *, int * const, int const *
Some people may be confused about the sequence of const and * on declaration in C++/C, me too. Now I ...
- 补交作业-第八周PSP
一.表格 C(分类) C(内容) S(开始时间) ST(结束时间) I(打断时间) △(净工作时间) 讨论 用户界面 9:30 10:40 15 55 编码 编码 13:20 16:30 10 180 ...
- xmlstreaml xml过滤 格式化 报文的发送接收 struct2
有时候把东西想的过于复杂了,还是思路不清晰啊. seervlet struct2配置过程
- python raw String 获取字符串变量中的反斜杠
常用的获取raw string的方式为: >>>r'\n' \n 不能用在字符串变量中,获取字符串变量中的反斜杠如下: tab = '\n' >>>tab.enco ...
- Python-Mac 安装 PyQt4
环境: 系统: OS X 10.11.4 Python: 2.7.10 1.安装 Qt brew install qt 测试安装结果,需要正确找到 qmake 的路径 qmake 2.安装 SIP 下 ...
- C# 指定Webbrowser控件所用IE内核版本
如果电脑上安装了IE8或者之后版本的IE浏览器,Webbrowser控件会使用IE7兼容模式来显示网页内容.解决方法是在注册表中为你的进程指定引用IE的版本号. 比如我的程序叫做a.exe,以64位机 ...