none
我想用c#做个类似windows的计算器,请问应该用什么类型? RRS feed

  • 问题

  • 想到用double,不过测试貌似不是double

    如下windows:2-3=0.66666666666666666666666666666667在double好像表示不了


    good good study,day day up.
    • 已更改类型 PEIYANGXINQU 2011年4月9日 17:02 发错了
    2011年4月9日 16:28

答案

  • 您好,你可以尝试用一下Decimal,Decimal的位数特别大(是128位二进度),而且小数运算不会有误差,应该可以完成您所说的精度。

    但是Decimal也有问题,如Decimal并不支持大指数,所以如果你想两者兼得的话,你可以尝试自己写一个类, 像BigNumber之类的,网上应该有很多,你可以试试

    其实double的精度也不小了,至少有15位。

    • 已标记为答案 Aspen VJ 2011年4月18日 8:05
    2011年4月10日 3:05
  • 您好,按照您的想法,您可以尝试自己做一个分数的类,因为十进制是无法拿完表示无限小数的!
    • 已标记为答案 Aspen VJ 2011年4月18日 8:05
    2011年4月11日 2:39

全部回复

  • 您好,你可以尝试用一下Decimal,Decimal的位数特别大(是128位二进度),而且小数运算不会有误差,应该可以完成您所说的精度。

    但是Decimal也有问题,如Decimal并不支持大指数,所以如果你想两者兼得的话,你可以尝试自己写一个类, 像BigNumber之类的,网上应该有很多,你可以试试

    其实double的精度也不小了,至少有15位。

    • 已标记为答案 Aspen VJ 2011年4月18日 8:05
    2011年4月10日 3:05
  • double够用了哦。

    你可以取几位小数

     

    比如.ToString("0.0");

    or

    .ToString("N1");

    2011年4月10日 3:38
  • 您好,按照您的想法,您可以尝试自己做一个分数的类,因为十进制是无法拿完表示无限小数的!
    • 已标记为答案 Aspen VJ 2011年4月18日 8:05
    2011年4月11日 2:39