例子:
把单位为码的长度转换为码、英尺、英寸。
下面例子进行了转换,同时最终的转换结果也舍去了英寸下面的余数。
// type_convert.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
int main()
{
const unsigned int feet_per_yard { 3 };
const unsigned inches_per_foot { 12 };
double length{};
unsigned int yards{};
unsigned int feet{};
unsigned int inches{};
std::cout << "enter a length in yards as decimal: ";
std::cin >> length;
yards = static_cast<unsigned int>(length);
feet = static_cast<unsigned int>((length - yards)*feet_per_yard); //把表达式的值转换为给定类型
inches = static_cast<unsigned int> //这里还有另外一种写法(求解方法)
(length*feet_per_yard *inches_per_foot) % inches_per_foot;
- inches = static_cast<unsigned int>
- (((length - yards)*feet_per_yard-feet) * inches_per_foot);//一定注意最外面的括号,如果不括号,结果就不对,被类型
- //强制转换
std::cout << length << " yards converts to"
<< yards << " yards "
<< feet << " feet "
<< inches << " inches." << std::endl;
return 0;
}
参考:《C++入门经典》