需要一种用户输入类型的方法:命令行程序的双精度[重复]
Posted
技术标签:
【中文标题】需要一种用户输入类型的方法:命令行程序的双精度[重复]【英文标题】:Need a way for user to input type:double for command line program [duplicate] 【发布时间】:2018-02-21 21:29:15 【问题描述】:我最近开始学习 C++ 和 Swift。我已经用 C++ 编写了一些程序,并决定尝试将其中一个程序翻译成 Swift。我遇到了一个问题。当我尝试使用readline()
在 Swift 中从用户那里获取输入时,它会将数字保存为字符串而不是 Double。结果,每当我尝试计算时,我的程序中都会出现错误。
二元运算符“*”不能应用于“Double”和“String”类型的操作数
我已尝试在 Internet 上搜索解决此问题的方法,但我找到的所有说明都已过时。如果有人可以提供帮助,将不胜感激。
下面是我将 C++ 代码翻译成 Swift 的尝试。
/* Calculate and display the circumference of a circular gazebo and the price of the railing materials for it. */
import Foundation
//Declare Name Constants
let PI : Double = 3.141593
//Input
print("Enter the diameter (in feet) of the gazebo: ")
let gazeboDiameter = (readLine()!)
print ("Enter the price (per foot) of railing material: ")
let priceOfRailing = ((readLine()!)
// Calculate circumference and price
let circumference = PI * gazeboDiameter
let costOfGazebo = circumference * priceOfRailing
//Output
print("The Diameter of the Gazebo is: " (gazeboDiameter))
print("The price (per foot) of the railing material is: "(costOfGazebo))
print("The circumference of the gazebo is: " (circumference))
print("The price of the railing will be: $"(costOfGazebo))
【问题讨论】:
问题是什么?请考虑删除 C++ 部分。 【参考方案1】:readLine(strippingNewline:) 返回一个字符串类型的对象。 因此,您必须尝试从 String 转换为 double。 你的程序就变成了:
//SWIFT
/* Calculate and display the circumference of a circular gazebo and the price of the railing materials for it. */
import Foundation
//Declare Variables
var gazeboDiameter: Double = 0.0
var priceOfRailing: Double = 0.0
var circumference: Double = 0.0
var costOfGazebo: Double = 0.0
//Input
print("Enter the diameter (in feet) of the gazebo: ")
gazeboDiameter = Double(readLine()!)!
print ("Enter the price (per foot) of railing material: ")
priceOfRailing = Double(readLine()!)!
// Calculate circumference and price
circumference = Double.pi * gazeboDiameter
costOfGazebo = circumference * priceOfRailing
//Output
print("The Diameter of the Gazebo is: \(gazeboDiameter)")
print("The price (per foot) of the railing material is: \(costOfGazebo)")
print("The circumference of the gazebo is: \(circumference)")
print("The price of the railing will be: $\(costOfGazebo)")
【讨论】:
以上是关于需要一种用户输入类型的方法:命令行程序的双精度[重复]的主要内容,如果未能解决你的问题,请参考以下文章