如何划分两个双数并输出商?

时间:2014-11-22 00:36:10

标签: c double division

作为我在C中创建的程序的一部分,我必须将一个名为“money”的双值除以十进制数(例如0.55,0.85,0.90等)。然后我想存储这个除法的值,并且只输出该除法的整数而不是余数。 例如,如果我做1.30 / 0.55那么真正的答案是2.363636 .. 但是我只想输出答案的2部分而不是剩下的部分。当我运行我的程序时,该分区的输出总是0.000000,我无法弄清楚为什么答案不正确。

#include <stdio.h>

int main( void )
{
  char candy;
  double money;
  double quant;
  scanf( "%c %lf", &candy, &money );

  switch ( candy )
  {
  case 'a' :
     quant = money / 0.55;
     if ( quant >= 1 )
        printf( "You selected Mars and have enough money to buy %1.lf bars", &quant );
     else
        printf( "You selected Mars, but, do not have enough money" );
     break;

例如,当我输入1.40的钱时,我期待: “你选择了火星并且有足够的钱购买2个酒吧” 但实际输出是: “你选择了火星,并有足够的钱购买0.0000000棒”

我对C编程很陌生,所以任何帮助都将不胜感激! 非常感谢

1 个答案:

答案 0 :(得分:1)

int quant = (int)(money / 0.55);
 if ( quant >= 1 )
    printf( "You selected Mars and have enough money to buy %d bars", quant );

这将删除小数点后的所有内容。如果你想强行向上或向下,你需要功能层和ceil