如何将小数原样输出????

wocaonimabi 2007-01-25 01:18:05
如提:
a = 1.0120000 , b = 1111.245601560000
后面的位数不固定,主要是后面的0要保住。
怎么让他原样输出呢????

用tostring好象不行。会把后面的0给去掉

请大家不要轻易的说用 tostring() 就好了,可以的话自己的机子上试正确了。
谢谢。弄了好久也不会
...全文
587 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
landy_shasha 2007-01-26
  • 打赏
  • 举报
回复
decimal a = 111.12452620000M;
decimal b,d,f;
double c,j,s;
d = 123;
f = 45;
j = 123;
s = 45;
b = 123 / 45;
Response.Write("b=" + b.ToString() + "<br>");
Response.Write("b=" + b.ToString("f4") + "<br>");
c = 123 / 45;
Response.Write("c=" + c.ToString() + "<br>");
Response.Write("c="+c.ToString("f4") + "<br>");
b = d / f;
Response.Write("b=" + b.ToString() + "<br>");
c = j / s;
Response.Write("c=" + c.ToString() + "<br>"

结果:
b=2
b=2.0000
c=2
c=2.0000
b=2.7333333333333333333333333333
c=2.73333333333333
landy_shasha 2007-01-26
  • 打赏
  • 举报
回复
decimal b;
b = 123 / 45;

Response.Write(b.ToString() + "@@");
输出 2@@
怎样让他完整的保留后面的小数
viena 2007-01-25
  • 打赏
  • 举报
回复
Decimal 值类型表示从正 79,228,162,514,264,337,593,543,950,335 到负 79,228,162,514,264,337,593,543,950,335 之间的十进制数。Decimal 值类型适用于要求使用大量有效的整数及小数位数并且没有舍入错误的财务计算。

十进制数是由符号、数值和比例因子组成的浮点值,数值的每一位的范围都是 0 到 9,比例因子指示分隔数值的整数和小数部分的浮点小数点的位置。

Decimal 值的二进制表示形式由 1 位符号、96 位整数以及比例因子组成,比例因子用作 96 位整数的除数并指定整数的哪一部分为小数。比例因子隐式地定为数字 10 的幂,指数范围从 0 到 28。因此,Decimal 值的二进制表示形式为:((-296 到 296) / 10(0 到 28)),其中 -296-1 等于 MinValue,而 296-1 等于 MaxValue。
北京的雾霾天 2007-01-25
  • 打赏
  • 举报
回复
信誉分是原来得的,当贴子提交成FAQ后就可以得到相应的信誉分了.
如果贴子一直不结或其它一些不正当的行为的时候系统会扣掉信誉分.
但是现在这个长就不知道有什么规则了.
tcxx2008 2007-01-25
  • 打赏
  • 举报
回复
hbxtlhx(平民百姓) ( ) 信誉:112 顺便问下 ,112是怎么来的,什么条件。我为什么一直是100,而有的人< 100呢????
tcxx2008 2007-01-25
  • 打赏
  • 举报
回复
都是高手呀。哈哈。
但我突然想到了一个问题,变量计算出来的,怎么在它的后面添加一个M的呢。

decimal b = 1111.245601560000m;

decimal b = 0;
b = 123/45;
这样它后面会有个M吗???


北京的雾霾天 2007-01-25
  • 打赏
  • 举报
回复
这是.NET本身的问题了.....
cancerser 2007-01-25
  • 打赏
  • 举报
回复
decimal b = 1111.245601560000m;
比如上面的这个
我看到的b的值是1111.24560256
但ToString()的时候 变成了1111.245601560000,它是怎么记住位数的
北京的雾霾天 2007-01-25
  • 打赏
  • 举报
回复
把精度取出来?
什么意思啊....
decimal的精度是28到29位.
cancerser 2007-01-25
  • 打赏
  • 举报
回复
to 平民大哥

正如你所说,decimal在存储的时候可能会带上精度,有没有方法把其精度取出来?
北京的雾霾天 2007-01-25
  • 打赏
  • 举报
回复
这主要和所用的数据类型有关.默认的情况有的可以带0,有的则不带,比如decimal类型的用ToString()就可以带出后面的0.
cancerser 2007-01-25
  • 打赏
  • 举报
回复
我想知道 楼长用什么类型 能把 a,b 存成那样
___________________________________---
跟风瞻仰
liujia_0421 2007-01-25
  • 打赏
  • 举报
回复
果然名不虚传,我也不枉此行啊....
liujia_0421 2007-01-25
  • 打赏
  • 举报
回复
听说来了位牛人,进来瞻仰一下...
liujia_0421 2007-01-25
  • 打赏
  • 举报
回复
try..

double a = 1111.245601560000;
Console.WriteLine(a.ToString("f12"));
luqinghua 2007-01-25
  • 打赏
  • 举报
回复
decimal b = 1111.245601560000m;
string str = b.ToString();
tcxx2008 2007-01-25
  • 打赏
  • 举报
回复
wocaonimabi 牛比人用牛比方法。
lz是高手,大名就如雷贯耳。
LeoMaya 2007-01-25
  • 打赏
  • 举报
回复
System.Globalization.NumberFormatInfo nfi = new System.Globalization.NumberFormatInfo();
decimal test = 1111111111111.0215510012000m;
nfi.NumberDecimalDigits = getNumberDecimalDigits(test.ToString());
MessageBox.Show(test.ToString(nfi));

private int getNumberDecimalDigits(string aStr)
{
int index = 0;
if (aStr.Contains("."))
{
index = aStr.Split('.')[1].Length;
}
else
{
index = 0;
}

return index;
}
setfocus 2007-01-25
  • 打赏
  • 举报
回复
如果是输入控件来接受用户输入的数值的话,可以不用转换;如果是声名的变量的话,那就只能用string来声名了,如果是固定了长度的,比如说小数点后必须保留三位,不足的补零的,可以通过字符串来填充,但整体来说,只能用字符串对变量进行保存。
JavaK 2007-01-25
  • 打赏
  • 举报
回复
加个"M"如:
decimal num1 = 23.3401232343434M;
MessageBox.Show(num1.ToString());
加载更多回复(6)

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧