C++ 如何将数字转换为0.mynumber

C++ 如何将数字转换为0.mynumber,c++,numbers,converter,C++,Numbers,Converter,如何将数字转换为0。号码是多少 所以 还是什么? 我该怎么做呢?这很难看,但我认为这是可行的: float a = i; while( a >= 1.0f ) a /= 10.0f; int i = 50; std::stringstream ss; ss << "0." << i; float a; ss >> a; inti=50; std::stringstream-ss; ss a; 这很难看,但我认为

如何将数字转换为0。号码是多少

所以

还是什么?
我该怎么做呢?

这很难看,但我认为这是可行的:

float a = i;
while( a >= 1.0f ) a /= 10.0f;
    int i = 50;
    std::stringstream ss;
    ss << "0." << i;
    float a;
    ss >> a;
inti=50;
std::stringstream-ss;
ss a;

这很难看,但我认为这是可行的:

    int i = 50;
    std::stringstream ss;
    ss << "0." << i;
    float a;
    ss >> a;
inti=50;
std::stringstream-ss;
ss a;
关于:

#include <cmath>
#include <initializer_list>
#include <iostream>

float zero_dot( float m ) {
   return m / pow( 10.0, floor( log( m ) / log( 10.0 ) ) + 1 );
}

int main() {

   for( auto const & it: { 5.0, 50.0, 500.0, 5509.0, 1.0 } ) {
      std::cout << it << ": " << zero_dot( it ) << std::endl;
   }

   return 0;
}
计算不使用任何循环。

关于:

#include <cmath>
#include <initializer_list>
#include <iostream>

float zero_dot( float m ) {
   return m / pow( 10.0, floor( log( m ) / log( 10.0 ) ) + 1 );
}

int main() {

   for( auto const & it: { 5.0, 50.0, 500.0, 5509.0, 1.0 } ) {
      std::cout << it << ": " << zero_dot( it ) << std::endl;
   }

   return 0;
}

计算不使用任何循环。

对于
i
的某些值,您是否希望能够得到
a=0.01
a=0.001
?对于
i
的某些值,您是否希望得到
a==0.50
?您是否希望得到
a=0.01
a=0.001
?您是否希望得到
a==0.50
?对不起,米斯拉正在接近我。您应该具有
/=10.0f
。请注意小数点和
f
后缀,以表示
float
常量。@BarşUşaklı谢谢。(我真的不应该一边回答问题,一边专注于其他事情:-P)@DanielFrey这不是每个人都在做的吗佩索里,但米斯拉正在接近我。您应该具有
/=10.0f
。请注意小数点和
f
后缀,以表示
float
常量。@BarşUşaklı谢谢。(我真的不应该一边回答问题,一边专注于其他事情:-P)@DanielFrey这不是每个人都在做的吗呸。。。任何时候,当一个数字操作涉及到进出字符串时,我都会畏缩。有可能是一些更优雅的位转换,但这是我想出了更快的黑客。呵呵。。。任何时候,当一个数字操作涉及到进出字符串时,我都会畏缩。可能有一些更优雅的东西与位转移,但这是我想出了更快的黑客。我觉得这是一个有点太复杂的小项目:)@ShakeryGO:你能告诉我什么是复杂的这里?这是Daniel Freys答案的封闭形式。(还有:为什么小项目比大项目“简单”?)我觉得这个小项目有点太复杂了:)@ShakeryGO:你能告诉我这里有什么复杂的地方吗?这是Daniel Freys答案的封闭形式。(还有:为什么小项目比大项目“简单”)