Una manera para saber cuanta capacidad tienen cada tipo de valor númerico podemos correr este codigo.
minInt8:= math.MinInt8maxInt8:= math.MaxInt8minInt16:= math.MinInt16maxInt16:= math.MaxInt16minInt32:= math.MinInt32maxInt32:= math.MaxInt32minInt64:= math.MinInt64maxInt64:= math.MaxInt64maxUnit8:= math.MaxUint8maxUnit16:= math.MaxUint16maxUnit32:= math.MaxUint32maxFloat32:= math.MaxFloat32maxFloat64:= math.MaxFloat64 fmt.Printf("Range of Int8 = %d to %d.\n", minInt8, maxInt8) fmt.Printf("Range of Int16 = %d to %d.\n", minInt16, maxInt16) fmt.Printf("Range of Int32 = %d to %d.\n", minInt32, maxInt32) fmt.Printf("Range of Int64 = %d to %d.\n", minInt64, maxInt64) fmt.Printf("MaxUint8 = %d.\n", maxUnit8) fmt.Printf("MaxUint16 = %d.\n", maxUnit16) fmt.Printf("MaxUint32 = %d.\n", maxUnit32) fmt.Printf("Max Float32 = %f.\n", maxFloat32) fmt.Println("Max Float64 =", maxFloat64)
Deberian dejar de asumir que las personas que llegan a cursos de programación de este tipo, no saben de plano nada de programación, seria mas dinámico. se me hace super aburrido que en cada curso de un lenguaje nuevo me quieran explicar cosas como que es una función y para que sirve, seria mejor que enseñaran cosas específicas del lenguaje para perder menos tiempo
Tipos en Go.
Gracias por tu aporte
Excelente el curso, go es tambien apasionante igual que Python
Jugando con operaciones float64
package main
import("fmt")func main(){ fmt.Println("********************************") fmt.Println("Calculadora V.1.1.0") fmt.Println("********************************")var n1, n2 float64
n1, n2 =0,0 fmt.Print("Digite el primer numero (N1): ") fmt.Scanf("%f",&n1) fmt.Print("Digite el segundo numero (N2): ") fmt.Scanf("%f",&n2) suma,resta:=Operate(n1, n2) fmt.Println("> Resultados:") fmt.Printf("N1 + N2 = %f\n", suma) fmt.Printf("N1 - N2 = %f\n", resta)}// Operate realiza la suma y la resta de 2 valores dadosfunc Operate(n1, n2 float64)(suma float64, resta float64){ suma = n1 + n2
resta = n1 - n2
return suma, resta
}```
Mi aporte:
package main
import"fmt"func main(){ fmt.Println("Calculadora de Operaciones Basicas") suma, resta, mulp,div:=operations(getNum(),getNum()) fmt.Println("El resultado de las operaciones son:") fmt.Printf("Suma: %f\n", suma) fmt.Printf("Resta: %f\n", resta) fmt.Printf("Multiplicación: %f\n", mulp) fmt.Printf("División: %f\n", div)}func getNum() float64 {var num float64
num =1 fmt.Print("Ingresa un numero: ") fmt.Scanf("%f",&num)return num
}func operations(num1 float64, num2 float64)(float64, float64, float64, float64){return(num1 + num2),(num1 - num2),(num1 * num2),(float64(num1)/float64(num2))}
package main
import"fmt"func main(){var( num1 int32
num2 int32
suma int32
resta int32
multiplicar float64
division float64
) fmt.Println("CALCULADORA") fmt.Print("Ingrese el primer numero: ") fmt.Scanf("%d",&num1) fmt.Print("Ingrese el segundo numero: ") fmt.Scanf("%d",&num2) fmt.Println("") suma, resta, multiplicar, division =calcular(num1, num2) fmt.Println("RESULTADO") fmt.Printf("Suma: %d\nResta: %d\n", suma, resta, multiplicar, division) fmt.Println("")}func calcular(a int32, b int32)(int32, int32, float64, float64){return(a + b),(a - b),(float64(a)*float64(b)),(float64(a)/float64(b))}
package main
import"fmt"func main(){valor1:=getValor("1")valor2:=getValor("2") fmt.Printf("La suma es %f\n",suma(valor1, valor2)) fmt.Printf("La resta es %f\n",resta(valor1, valor2))}func getValor(label string) float64 {var valor float64
fmt.Printf("Ingresa valor %s:\n",label) fmt.Scanf("%f",&valor)return valor
}func suma(a float64, b float64) float64 {return a + b
}func resta(a float64, b float64) float64 {return a - b
}
La salida en efecto es más precisa.
Ingresa valor 1:9.87654321Ingresa valor 2:1.23456789La suma es 11.111111La resta es 8.641975
Estoy intentando recibir dos valores asi, pero solo me pide el primero y continua el flujo del programa. Alguien podria ayudarme?
Este es el resultado que obtengo
calculadora numeros flotantes
<code>package main
import"fmt"func main(){var numA, numB float32
var oper string
fmt.Println(" CALCULADORA ") fmt.Println(" ingresa el primer numero: ") fmt.Scanf("%f",&numA) fmt.Println(" ingresa el segundo numero: ") fmt.Scanf("%f",&numB) fmt.Println(" ingresa la operación: ") fmt.Print(" s = suma \n r = resta \n m = multiplicacion \n d = division \n") fmt.Scanf("%s",&oper)calcular(numA, numB, oper)}func calcular(a float32, b float32, op string){switch op {case"s": fmt.Printf("%f + %f = %f \n", a, b, a+b)case"r": fmt.Printf("%f - %f = %f \n", a, b, a-b)case"m": fmt.Printf("%f * %f = %f \n", a, b, a*b)case"d":if a/b >0{ fmt.Printf("%f / %f = %f \n", a, b, a/b)}else{ fmt.Printf("%f / %f = %f \n", a, b,float32(a)/float32(b))}}}
Hola me pueden ayudar con algo, es que copie tu código pero no me tomaba el 2 valor le tuve que agregar otro Scanf para que lo tomara. sabes por que ?
package main
import"fmt"func main(){valor1:=getValor("1")valor2:=getValor("2") fmt.Printf("La suma es %f\n",suma(valor1, valor2)) fmt.Printf("La resta es %f\n",resta(valor1, valor2))}func getValor(label string) float64 {var valor float64
fmt.Printf("Ingresa valor %s:\n",label) fmt.Scanf("%f",&valor) fmt.Scanf("%f",&valor)return valor
}func suma(a float64, b float64) float64 {return a + b
}func resta(a float64, b float64) float64 {return a - b
}
Si a alguien le interesa saber acerca de precisión de los puntos flotantes pueden ver este gran video: VIDEO
Atom no me alerta los errores a nivel de código? Que plugin debo instalar para que me alerte? Y cómo lo debo hacer?. Gracias
Debes instalar algún plugin para sintaxis de Go para este editor, puedes usar por ejemplo este https://atom.io/packages/language-go aunque hay otros plugins de go.
valor1:=0valor2:=0var operador int
fmt.Printf("---Bievenido a tu Calculadora---\n")fmt.Printf("--------------------------------\n")fmt.Printf("\n Que Operación Deseas Realizar:\n")fmt.Printf("\n 1.Sumar <--\n 2.Restar <--\n 3.Multiplicar <--\n 4.Dividir <--\n")fmt.Printf("-------------------------------\n")fmt.Scanf("%d\n",&operador)if operador >=5{ fmt.Printf("Operación Invalida")}else{ fmt.Println("Hola Prueba") fmt.Println("Ingresar el Primer Valor:") fmt.Scanf("%d\n",&valor1) fmt.Println("Ingresar el Segundo Valor:") fmt.Scanf("%d\n",&valor2)switch operador {case1: fmt.Printf("El resultado de la suma %d",sumar(valor1, valor2))case2: fmt.Printf("El Resultado de la resta %d",restar(valor1, valor2))case3: fmt.Printf("El Resultado de la Multplicacion %d",multplicar(valor1, valor2))case4: fmt.Printf("El Resultado de la Division %d",dividir(valor1, valor2))}}